/*
 * @lc app=leetcode.cn id=415 lang=cpp
 *
 * [415] 字符串相加
 */

#include <limits.h>

#include <algorithm>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <vector>
using namespace std;

// @lc code=start
class Solution {
public:
    string addStrings(string num1, string num2) {
        int i = num1.size() - 1;        // num1 最后一位的下标
        int j = num2.size() - 1;        // num2 最后一位的下标
        int add = 0;                    // 进位符号
        string result = "";             // 保存结果

        while (i >= 0 || j >= 0 || add != 0) {
            int x = (i >= 0) ? num1[i] - '0' : 0;
            int y = (j >= 0) ? num2[j] - '0' : 0;
            int sum = x + y + add;
            result.push_back('0' + sum % 10);
            add = sum / 10;
            i--;
            j--;
        }
        
        reverse(result.begin(), result.end());

        return result;
    }
};
// @lc code=end

